package business;

import business.EmpregadoBO;
import business.EmpregadoException;
import org.junit.Ignore;
import java.math.BigDecimal;
import model.Empregado;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

public class EmpregadoBOTestCamposObrigatorios {
    
    public EmpregadoBOTestCamposObrigatorios() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }
    
    @Before
    public void setUp() {
    }
    
    @After
    public void tearDown() {
    }
    
    /**
     * Testes do método que verifica se os campos obrigatórios estão preenchidos.
     * São campos obrigatórios: nome, sexo, salário atual, CPF, data de nascimento e data de admissão.
     * 
     * @author Zeno
     * 
     */
    
    @Test(expected = EmpregadoException.class) 
    public void testObrigatoriedadeNula() throws EmpregadoException {
        Empregado empregado = new Empregado(0l, "", null, null, "", "", "", "");
        camposPreenchidos(empregado);
    }
    
    @Test
    public void testObrigatoriedadePreenchida() throws EmpregadoException {
        Empregado empregado = new Empregado(1l, "QualquerNome", true, new BigDecimal(500.00), "000.000.00-00", "01/02/91", "01/02/91", "");
        camposPreenchidos(empregado);
    }
    
    @Test
    public void testObrigatoriedadeTotalmentePreenchida() throws EmpregadoException {
        Empregado empregado = new Empregado(2l, "NomeQualquer", false, new BigDecimal(1000.00), "999.999.999-99", "01/02/91", "01/02/91", "01/02/91");
        camposPreenchidos(empregado);
    }
    
    private void camposPreenchidos(Empregado empregado) throws EmpregadoException {
        boolean valido = EmpregadoBO.getInstance().verificaCamposObrigatorios(empregado);
        assertEquals(true, valido);
    }
    
    private void camposNaoPreenchidos(Empregado empregado) throws EmpregadoException {
        boolean invalido = EmpregadoBO.getInstance().verificaCamposObrigatorios(empregado);
    }
    
}
